README.md bc8969ab162af244f42eabca93382e30c471f72a (bc8969ab) Text, 6.84 KB
Tc9d1d9# Reticulum MeshChatX
[Tff7b72Русский](Te6edf3lang/README.ru.md) | [Tff7b72Deutsch](Te6edf3lang/README.de.md) | [Tff7b72Italiano](Te6edf3lang/README.it.md) | [Tff7b72中文](Te6edf3lang/README.zh.md) | [Tff7b72日本語](Te6edf3lang/README.ja.md)
A extensively modified and feature-rich fork of Reticulum MeshChat by Liam Cottle.
This project is independent from the original Reticulum MeshChat project and is not affiliated with it.
Tff7b72- Source: [Tff7b72git.quad4.io/RNS-Things/MeshChatX](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX)
Tff7b72- Releases: [Tff7b72git.quad4.io/RNS-Things/MeshChatX/releases](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/releases)
Tff7b72- Changelog: [Ta5d6ff`CHANGELOG.md`](CHANGELOG.md)
Tc9d1d9## Important Notes
Tff7b72- Uses LXST
Tff7b72- Replaced Peewee ORM with raw SQL.
Tff7b72> [!WARNING]
Tff7b72> MeshChatX is not guaranteed to be wire/data compatible with older Reticulum MeshChat releases. Back up data before migration/testing.
Tff7b72> [!WARNING]
Tff7b72> Legacy systems are not fully supported yet. Current baseline is Python `>=3.11` and Node `>=24`.
Tc9d1d9## Demo And Screenshots
<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>
Tc9d1d9### UI Previews




Tc9d1d9## Requirements
Tff7b72- Python Ta5d6ff`>=3.11` (from Ta5d6ff`pyproject.toml`)
Tff7b72- Node.js Ta5d6ff`>=24` (from Ta5d6ff`package.json`)
Tff7b72- pnpm Ta5d6ff`10.30.0` (from Ta5d6ff`package.json`)
Tff7b72- Poetry (used by Ta5d6ff`Taskfile.yml` and CI workflows)
Tc9d1d9## Nix (flake.nix)
This repo includes a Nix flake at Ta5d6ff`flake.nix`.
Tc9d1d9### Enter the dev shell
Ta5d6ff```Ta5d6ffbash
nix develop
Ta5d6ff```
The flake dev shell provides Python, Poetry, Node, pnpm, Task, packaging tools (Ta5d6ff`rpm`, Ta5d6ff`dpkg`, Ta5d6ff`fakeroot`), Android build tools, and Docker tooling.
Tc9d1d9### Build the default Nix package
Ta5d6ff```Ta5d6ffbash
nix build .#default
Ta5d6ff```
Tc9d1d9### Typical workflow inside `nix develop`
Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```
Tc9d1d9## Install Methods
Use the method that matches your environment and packaging preference.
| Method | Includes frontend assets | Architectures | Best for |
| --- | --- | --- | --- |
| Docker image | Yes | Ta5d6ff`linux/amd64`, Ta5d6ff`linux/arm64` | Fastest setup on Linux servers/hosts |
| Python wheel (Ta5d6ff`.whl`) | Yes | Any Python-supported architecture | Headless/web-server install without Node build |
| Linux AppImage | Yes | Ta5d6ff`x64`, Ta5d6ff`arm64` | Portable desktop use |
| Debian package (Ta5d6ff`.deb`) | Yes | Ta5d6ff`x64`, Ta5d6ff`arm64` | Debian/Ubuntu installs |
| RPM package (Ta5d6ff`.rpm`) | Yes | CI-runner dependent for published artifact | Fedora/RHEL/openSUSE style systems |
| From source | Built locally | Host architecture | Development and custom builds |
Notes:
Tff7b72- The release workflow explicitly builds Linux Ta5d6ff`x64` and Ta5d6ff`arm64` AppImage + DEB.
Tff7b72- RPM is also attempted by release workflow and uploaded when produced.
Tc9d1d9## Quick Start: Docker
Ta5d6ff```Ta5d6ffbash
docker compose up -d
Ta5d6ff```
Default compose file maps:
Tff7b72- Ta5d6ff`127.0.0.1:8000` on host -> container port Ta5d6ff`8000`
Tff7b72- Ta5d6ff`./meshchat-config` -> Ta5d6ff`/config` for persistence
If your local Ta5d6ff`meshchat-config` permissions block writes, fix ownership:
Ta5d6ff```Ta5d6ffbash
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Ta5d6ff```
Tc9d1d9## Install from Release Artifacts
Tc9d1d9### 1) Linux AppImage (x64/arm64)
Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.AppImage` from releases.
Tff7b722. Make it executable and run:
Ta5d6ff```Ta5d6ffbash
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
Ta5d6ff```
Tc9d1d9### 2) Debian/Ubuntu `.deb` (x64/arm64)
Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.deb`.
Tff7b722. Install:
Ta5d6ff```Ta5d6ffbash
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
Ta5d6ff```
Tc9d1d9### 3) RPM-based systems
Tff7b721. Download Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.rpm` if present in the release.
Tff7b722. Install with your distro tool:
Ta5d6ff```Ta5d6ffbash
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
Ta5d6ff```
Tc9d1d9### 4) Python wheel (`.whl`)
Release wheels include the built web assets.
Ta5d6ff```Ta5d6ffbash
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchat --headless
Ta5d6ff```
Ta5d6ff`pipx` is also supported:
Ta5d6ff```Ta5d6ffbash
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Ta5d6ff```
Tc9d1d9## Run from Source (Web Server Mode)
Use this when developing or when you need a local custom build.
Ta5d6ff```Ta5d6ffbash
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run meshchat --headless --host T79c0ff127.0.0.1
Ta5d6ff```
Tc9d1d9## Build Desktop Packages from Source
These scripts are defined in Ta5d6ff`package.json` and Ta5d6ff`Taskfile.yml`.
Tc9d1d9### Linux x64 AppImage + DEB
Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-x64
Ta5d6ff```
Tc9d1d9### Linux arm64 AppImage + DEB
Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-arm64
Ta5d6ff```
Tc9d1d9### RPM
Ta5d6ff```Ta5d6ffbash
pnpm run dist:rpm
Ta5d6ff```
Or through Task:
Ta5d6ff```Ta5d6ffbash
task dist:fe:rpm
Ta5d6ff```
Tc9d1d9## Architecture Support Summary
Tff7b72- Docker image: Ta5d6ff`amd64`, Ta5d6ff`arm64`
Tff7b72- Linux AppImage: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Linux DEB: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Windows: Ta5d6ff`x64`, Ta5d6ff`arm64` (build scripts available)
Tff7b72- macOS: build scripts available (Ta5d6ff`arm64`, Ta5d6ff`universal`) for local build environments
Tff7b72- Android: build workflow and Android project are present in this repository
Tc9d1d9## Android
Use the dedicated docs:
Tff7b72- [Ta5d6ff`docs/meshchatx_on_android_with_termux.md`](docs/meshchatx_on_android_with_termux.md)
Tff7b72- [Ta5d6ff`android/README.md`](android/README.md)
Tc9d1d9## Configuration
MeshChatX supports both CLI args and env vars.
| Argument | Environment Variable | Default | Description |
| --- | --- | --- | --- |
| Ta5d6ff`--host` | Ta5d6ff`MESHCHAT_HOST` | Ta5d6ff`127.0.0.1` | Web server bind address |
| Ta5d6ff`--port` | Ta5d6ff`MESHCHAT_PORT` | Ta5d6ff`8000` | Web server port |
| Ta5d6ff`--no-https` | Ta5d6ff`MESHCHAT_NO_HTTPS` | Ta5d6ff`false` | Disable HTTPS |
| Ta5d6ff`--headless` | Ta5d6ff`MESHCHAT_HEADLESS` | Ta5d6ff`false` | Do not auto-launch browser |
| Ta5d6ff`--auth` | Ta5d6ff`MESHCHAT_AUTH` | Ta5d6ff`false` | Enable basic auth |
| Ta5d6ff`--storage-dir` | Ta5d6ff`MESHCHAT_STORAGE_DIR` | Ta5d6ff`./storage` | Data directory |
| Ta5d6ff`--public-dir` | Ta5d6ff`MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend files directory (needed for source installs without bundled assets) |
Tc9d1d9## Development
Common tasks from Ta5d6ff`Taskfile.yml`:
Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```
Tc9d1d9## Versioning
Current version in this repo is Ta5d6ff`4.2.1`.
Tff7b72- Ta5d6ff`package.json` is the JavaScript/Electron version source.
Tff7b72- Ta5d6ff`meshchatx/src/version.py` is synced from Ta5d6ff`package.json` using:
Ta5d6ff```Ta5d6ffbash
pnpm run version:sync
Ta5d6ff```
For release consistency, keep version fields aligned where required (Ta5d6ff`package.json`, Ta5d6ff`pyproject.toml`, Ta5d6ff`meshchatx/__init__.py`).
Tc9d1d9## Security
Security and integrity details:
Tff7b72- [Ta5d6ff`SECURITY.md`](SECURITY.md)
Tff7b72- Built-in integrity checks and HTTPS/WSS defaults in app runtime
Tff7b72- CI scanning workflows in Ta5d6ff`.gitea/workflows/`
Tc9d1d9## Credits
Tff7b72- [Tff7b72Liam Cottle](Te6edf3https://github.com/liamcottle) - Original Reticulum MeshChat
Tff7b72- [Tff7b72RFnexus](Te6edf3https://github.com/RFnexus) - micron parser JavaScript work
Tff7b72- [Tff7b72markqvist](Te6edf3https://github.com/markqvist) - Reticulum, LXMF, LXST
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────